home *** CD-ROM | disk | FTP | other *** search
Text File | 1992-05-31 | 28.0 KB | 1,127 lines |
- head 1.22;
- branch ;
- access ;
- symbols sprited:1.18.1;
- locks ; strict;
- comment @ * @;
-
-
- 1.22
- date 92.05.31.16.54.40; author kupfer; state Exp;
- branches ;
- next 1.21;
-
- 1.21
- date 92.01.06.14.51.01; author kupfer; state Exp;
- branches ;
- next 1.20;
-
- 1.20
- date 91.08.24.13.05.37; author mottsmth; state Exp;
- branches ;
- next 1.19;
-
- 1.19
- date 91.08.20.13.03.20; author mottsmth; state Exp;
- branches ;
- next 1.18;
-
- 1.18
- date 91.05.17.17.30.23; author kupfer; state Exp;
- branches 1.18.1.1;
- next 1.17;
-
- 1.17
- date 91.03.17.23.28.09; author kupfer; state Exp;
- branches ;
- next 1.16;
-
- 1.16
- date 91.03.01.22.11.03; author kupfer; state Exp;
- branches ;
- next 1.15;
-
- 1.15
- date 90.11.14.13.23.55; author shirriff; state Exp;
- branches ;
- next 1.14;
-
- 1.14
- date 90.10.19.15.50.38; author jhh; state Exp;
- branches ;
- next 1.13;
-
- 1.13
- date 90.06.21.13.56.30; author shirriff; state Exp;
- branches ;
- next 1.12;
-
- 1.12
- date 89.10.12.12.14.40; author jhh; state Exp;
- branches ;
- next 1.11;
-
- 1.11
- date 89.10.10.16.04.02; author douglis; state Exp;
- branches ;
- next 1.10;
-
- 1.10
- date 89.09.08.16.27.22; author mgbaker; state Exp;
- branches ;
- next 1.9;
-
- 1.9
- date 89.08.08.11.09.30; author douglis; state Exp;
- branches ;
- next 1.8;
-
- 1.8
- date 89.07.05.21.09.35; author rab; state Exp;
- branches ;
- next 1.7;
-
- 1.7
- date 89.06.23.11.29.53; author rab; state Exp;
- branches ;
- next 1.6;
-
- 1.6
- date 89.06.15.22.34.13; author douglis; state Exp;
- branches ;
- next 1.5;
-
- 1.5
- date 89.04.07.10.31.25; author douglis; state Exp;
- branches ;
- next 1.4;
-
- 1.4
- date 89.03.27.22.26.01; author jhh; state Exp;
- branches ;
- next 1.3;
-
- 1.3
- date 88.08.25.12.24.17; author nelson; state Exp;
- branches ;
- next 1.2;
-
- 1.2
- date 88.06.21.16.38.32; author ouster; state Exp;
- branches ;
- next 1.1;
-
- 1.1
- date 88.06.21.09.36.54; author ouster; state Exp;
- branches ;
- next ;
-
- 1.18.1.1
- date 91.08.05.17.29.56; author kupfer; state Exp;
- branches ;
- next ;
-
-
- desc
- @@
-
-
- 1.22
- log
- @Fix up comments for PROC_MIGRATING and PROC_MIGRATION_DONE.
- @
- text
- @/*
- * procUser.h --
- *
- * Definitions for use in the Proc system calls.
- *
- * Copyright 1986, 1988 Regents of the University of California
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies. The University of California
- * makes no representations about the suitability of this
- * software for any purpose. It is provided "as is" without
- * express or implied warranty.
- *
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.21 92/01/06 14:51:01 kupfer Exp Locker: kupfer $ SPRITE (Berkeley)
- */
-
- #ifndef _PROCUSER
- #define _PROCUSER
-
-
- /*
- * Process Termination Reason flags:
- *
- * PROC_TERM_EXITED - The process has called Proc_Exit.
- * PROC_TERM_DETACHED - The process has called Proc_Detach.
- * PROC_TERM_SIGNALED - The process has died because of a signal.
- * PROC_TERM_DESTROYED - The process has died because the internal
- * state of the process was found to be
- * invalid as a result of a user level error.
- * PROC_TERM_SUSPENDED - The process has been suspended.
- * PROC_TERM_RESUMED - The process has resumed execution as the
- * result of a resume signal.
- */
-
- #define PROC_TERM_EXITED 1
- #define PROC_TERM_DETACHED 2
- #define PROC_TERM_SIGNALED 3
- #define PROC_TERM_DESTROYED 4
- #define PROC_TERM_SUSPENDED 5
- #define PROC_TERM_RESUMED 6
-
- /*
- * Reasons why a process was destroyed (PROC_TERM_DESTROYED):
- *
- * PROC_BAD_STACK - A process's user stack is invalid upon
- * return from a signal handler.
- * PROC_BAD_PSW - The processor status word that is to be
- * restored upon return from a signal handler
- * has the supervisor bit set.
- * PROC_VM_READ_ERROR - The virtual memory system couldn't read from
- * the page server.
- * PROC_VM_WRITE_ERROR - The virtual memory system couldn't write to
- * the page server.
- */
-
- #define PROC_BAD_STACK 1
- #define PROC_BAD_PSW 2
- #define PROC_VM_READ_ERROR 3
- #define PROC_VM_WRITE_ERROR 4
-
- #ifndef _ASM
- /*
- * Definition of a process ID.
- */
-
- typedef unsigned int Proc_PID;
-
-
-
- /*
- * Special values to indicate the pid of the current process, or the host on
- * which it is running, respectively.
- */
-
- #define PROC_MY_PID ((Proc_PID) 0xffffffff)
- #define PROC_MY_HOSTID ((unsigned int) 0xffffffff)
-
- /*
- * Mask to extract process table index from pid.
- */
- #define PROC_INDEX_MASK 0x000000FF
-
- /*
- * Convert a process id into a process table index.
- */
- #define Proc_PIDToIndex(pid) ((pid) & PROC_INDEX_MASK)
-
- /*
- * Special parameter to Proc_Migrate to evict all processes from a
- * workstation.
- */
-
- #define PROC_ALL_PROCESSES ((Proc_PID) 0)
-
- /*
- * Special family value to indicate the process isn't in a family and
- * a macro to see if the process is in a family.
- */
-
- #define PROC_NO_FAMILY (Proc_PID) -1
- #define Proc_In_A_Family(familyID) ((familyID) != PROC_NO_FAMILY)
-
-
- /*
- * PROC_SUPER_USER_ID is the user ID of the omnipotent super-user and
- * PROC_NO_ID is used when specifying no id to the Proc_SetIDs call.
- */
-
- #define PROC_SUPER_USER_ID 0
- #define PROC_NO_ID -1
-
- /*
- * PROC_NO_INTR_PRIORITY is used to provide system processes
- * infinitely-high priority.
- */
-
- #define PROC_MIN_PRIORITY -2
- #define PROC_MAX_PRIORITY 2
-
- #define PROC_NO_INTR_PRIORITY 2
- #define PROC_HIGH_PRIORITY 1
- #define PROC_NORMAL_PRIORITY 0
- #define PROC_LOW_PRIORITY -1
- #define PROC_VERY_LOW_PRIORITY -2
-
- /*
- * Process state flags:
- */
- typedef enum {
- PROC_UNUSED, /* The process doesn't exist yet. */
- PROC_RUNNING, /* The process is executing on a processor. */
- PROC_READY, /* The process is ready to execute. */
- PROC_WAITING, /* The process is waiting for an event to occur such
- * as I/O completion or a mutex lock released. */
- PROC_EXITING, /* The process has terminated and is on the
- * exiting list. */
- PROC_DEAD, /* The process has been terminated is on the dead list*/
- PROC_MIGRATED, /* The process is running on a remote machine. */
- PROC_NEW, /* The process was just created. */
- PROC_SUSPENDED /* The process is suspended. */
- } Proc_State;
-
- #endif /* _ASM */
-
-
- /*
- * Process attributes flags:
- *
- * PROC_KERNEL - The process is a kernel process.
- * PROC_USER - The process is a user process.
- * PROC_DEBUGGED - The process is being debugged by the system
- * debugger.
- * PROC_DEBUG_ON_EXEC - The process will start in debugged mode.
- * PROC_DEBUG_WAIT - A debugger is waiting for this process to go
- * onto the debug list.
- * PROC_SINGLE_STEP_FLAG - The process will have the trace bit set
- * before it runs.
- * PROC_MIG_PENDING - The process will be migrated when it
- * completes its next trap.
- * PROC_DONT_MIGRATE - The process should not be migrated yet, even
- * when it traps.
- * PROC_FOREIGN - The process has been migrated from another
- * workstation to this one.
- * PROC_DYING - The process is comitting hari-kari.
- * PROC_LOCKED - This process is locked.
- * PROC_NO_VM - The virtual memory resources have been
- * freed up for this user process.
- * PROC_MIGRATING - The process is in the middle of migrating
- * to another workstation. This happens after
- * PROC_MIG_PENDING is set but before the
- * process's PROC_MIGRATION_DONE flag is
- * set. Not cleared until the process
- * context switches to PROC_MIGRATED or (for
- * evictions) exits.
- * PROC_MIGRATION_DONE - indicates successful completion of a
- * migration trap. Set just before resuming
- * the remote process.
- * PROC_ON_DEBUG_LIST - The process is on the debug list.
- * PROC_REMOTE_EXEC_PENDING - The process should perform an exec as part
- * of migration.
- * PROC_MIG_ERROR - Indicates asynchronous error before
- * migrating process context switches.
- * PROC_EVICTING - Indicates process is being evicted
- * (for statistics gathering).
- * PROC_KILLING - Indicates we're trying to kill the process
- * but it's in the debugger. This is a
- * big hack to get dbx to work.
- * PROC_VFORKCHILD - This process created with vfork
- * and parent is still waiting.
- * PROC_VFORKPARENT - This process is waiting for its child
- * to exec or exit.
- * PROC_RESUME_PROCESS - The process should ignore a pending
- * suspend signal.
- * PROC_PENDING_SUSPEND - The process has gotten a suspend signal
- * but hasn't suspended itself yet.
- */
-
- #define PROC_KERNEL 0x000001
- #define PROC_USER 0x000002
- #define PROC_DEBUGGED 0x000004
- #define PROC_DEBUG_ON_EXEC 0x000008
- #define PROC_SINGLE_STEP_FLAG 0x000010
- #define PROC_DEBUG_WAIT 0x000020
- #define PROC_MIG_PENDING 0x000040
- #define PROC_DONT_MIGRATE 0x000080
- #define PROC_FOREIGN 0x000100
- #define PROC_DYING 0x000200
- #define PROC_LOCKED 0x000400
- #define PROC_NO_VM 0x000800
- #define PROC_MIGRATING 0x001000
- #define PROC_MIGRATION_DONE 0x002000
- #define PROC_ON_DEBUG_LIST 0x004000
- #define PROC_REMOTE_EXEC_PENDING 0x008000
- #define PROC_MIG_ERROR 0x010000
- #define PROC_EVICTING 0x020000
- #define PROC_KILLING 0x040000
- #define PROC_VFORKCHILD 0x080000
- #define PROC_VFORKPARENT 0x100000
- #define PROC_RESUME_PROCESS 0x200000
- #define PROC_PENDING_SUSPEND 0x400000
-
- /*
- * The include's must come after the definition of Proc_State (and
- * possibly some other stuff as well). Blech.
- */
-
- #ifndef _ASM
- #include <sprite.h>
- #include <spriteTime.h>
- #ifdef KERNEL
- #include <sigTypes.h>
- #include <machTypes.h>
- #include <user/vmTypes.h>
- #else
- #include <kernel/sigTypes.h>
- #include <kernel/machTypes.h>
- #include <vmTypes.h>
- #endif
-
- #endif /* _ASM */
-
- #ifndef _ASM
-
-
- /*
- * Resource usage summary for a process.
- * Used by Proc_Wait and Proc_GetResUsage.
- *
- * Preliminary version: more fields will be added when needed.
- *
- * Note: the cpu usage fields use the Time format. In the process
- * control block, they are stored in the Timer_Ticks format.
- * They are converted to Time format by the system calls that return
- * resource usage info.
- */
-
- typedef struct {
- Time kernelCpuUsage; /* How much time has been spent in kernel mode*/
- Time userCpuUsage; /* How much time has been spent in user mode. */
-
- Time childKernelCpuUsage; /* Sum of time spent in kernel mode for
- * all terminated children. */
- Time childUserCpuUsage; /* Sum of time been spent in user mode for
- * all terminated children. */
- int numQuantumEnds; /* number of times the process was
- * context switched due to a quantum end. */
- int numWaitEvents; /* number of times the process was
- * context switched due to its waiting for
- * an event. */
- } Proc_ResUsage;
-
- /*
- * Request values for use with Proc_Debug system call.
- */
-
- typedef enum {
- PROC_GET_THIS_DEBUG,
- PROC_GET_NEXT_DEBUG,
- PROC_CONTINUE,
- PROC_SINGLE_STEP,
- PROC_GET_DBG_STATE,
- PROC_SET_DBG_STATE,
- PROC_READ,
- PROC_WRITE,
- PROC_DETACH_DEBUGGER
- } Proc_DebugReq;
-
- /*
- * Flags to Proc_Wait
- *
- * PROC_WAIT_BLOCK - Block if there if are no stopped or
- * terminated processes.
- * PROC_WAIT_FOR_SUSPEND - Return status of children that are suspended.
- * If this option isn't specified and children
- * are stopped then it is as though they are
- * still running.
- */
- #define PROC_WAIT_BLOCK 0x1
- #define PROC_WAIT_FOR_SUSPEND 0x2
-
- #define PROC_NUM_GENERAL_REGS 16
-
- typedef struct {
- Proc_PID processID; /* Process ID of debuggee */
- int termReason; /* Reason why process has died or
- * it has been detached. */
- int termStatus; /* Exit/detach status or signal number
- * that caused the process to die. */
- int termCode; /* The code for the signal. */
- Mach_RegState regState; /* The register state of the process. */
- int sigHoldMask; /* Mask of signals to be held. */
- int sigPendingMask; /* Mask of pending signals. */
- int sigActions[SIG_NUM_SIGNALS]; /* Array of the different types
- of actions for signals. */
- int sigMasks[SIG_NUM_SIGNALS]; /* Array of signal hold masks for
- signal handlers. */
- int sigCodes[SIG_NUM_SIGNALS]; /* Array of signal handlers for
- signals. */
-
- } Proc_DebugState;
-
- /*
- * Structure that represents one environment variable.
- */
-
- typedef struct {
- char *name; /* Variable name. */
- char *value; /* Value for variable. */
- } Proc_EnvironVar;
-
- /*
- * Process information. Add new fields to the end of this structure!
- */
- typedef struct {
- int processor; /* Processor number the process is running on
- * or wants to run on if the processor is
- * available. */
-
- Proc_State state; /* Describes a process's current running state.
- * >>> See Proc_State definitions above. */
-
- int genFlags; /* Flags to describe a processes overall state.
- * >>> See definitions below */
-
- /*
- *-----------------------------------------------------------------
- *
- * Various Process Identifiers.
- *
- * Note that the user and effectiveUser ID are kept here because
- * they are used for permission checking in various places. There
- * is also a list of group IDs which is kept in the filesystem state.
- *
- *-----------------------------------------------------------------
- */
-
- Proc_PID processID; /* Actual process ID of this
- * process (for migrated processes
- * this is different than the PID
- * that the user sees). */
- Proc_PID parentID; /* The process ID of the parent
- * of this process. */
- int familyID; /* The id of the process family that
- * this process belongs to. */
- int userID; /* The user id is used to check access
- * rights to files and check ability
- * to signal other processes. */
- int effectiveUserID; /* The effective user id is used
- * for setuid access. */
-
- /*
- *-----------------------------------------------------------------
- *
- * Synchronization fields.
- *
- * Synchronization state includes an event the process is waiting on.
- *
- *-----------------------------------------------------------------
- */
-
- int event; /* Event # the process is waiting for. */
-
- /*
- *-----------------------------------------------------------------
- *
- * Scheduling fields.
- *
- *-----------------------------------------------------------------
- */
-
-
- int billingRate; /* Modifies the scheduler's calculation of
- * the processes priority. */
- unsigned int recentUsage; /* Amount of CPU time used recently */
- unsigned int weightedUsage; /* Smoothed avg. of CPU usage, weighted by
- * billing rate. */
- unsigned int unweightedUsage; /* Smoothed avg. of CPU usage, not weighted by
- * billing rate. */
-
- /*
- *-----------------------------------------------------------------
- *
- * Accounting and Resource Usage fields.
- *
- *-----------------------------------------------------------------
- */
-
- Time kernelCpuUsage; /* How much time has been spent in kernel mode*/
- Time userCpuUsage; /* How much time has been spent in user mode. */
-
- Time childKernelCpuUsage; /* Sum of time spent in kernel mode for
- * all terminated children. */
- Time childUserCpuUsage; /* Sum of time spent in user mode for
- * all terminated children. */
- int numQuantumEnds; /* number of times the process was
- * context switched due to a quantum
- * end. */
- int numWaitEvents; /* number of times the process was
- * context switched due to its waiting
- * for an event. */
- unsigned int schedQuantumTicks; /* Number of clock ticks until this
- * process is due to be switched out. */
-
- /*
- *-----------------------------------------------------------------
- *
- * Virtual Memory fields.
- *
- *-----------------------------------------------------------------
- */
- Vm_SegmentID vmSegments[VM_NUM_SEGMENTS];
-
-
- /*
- *-----------------------------------------------------------------
- *
- * Signals
- *
- *-----------------------------------------------------------------
- */
-
- int sigHoldMask; /* Mask of signals to be held. */
- int sigPendingMask; /* Mask of pending signals. */
- /* Array of the different types
- of actions for signals. */
- int sigActions[SIG_NUM_SIGNALS];
- /* Array of signal hold masks for
- signal handlers. */
- /*
- *---------------------------------------------------------------------
- *
- * Data for process migration.
- *
- *---------------------------------------------------------------------
- */
- int peerHostID; /* If on home node, ID of remote node.
- * If on remote node, ID of home node.
- * If not migrated, undefined. */
- Proc_PID peerProcessID; /* If on remote note, process ID on
- * home node, and vice-versa. */
- } Proc_PCBInfo;
-
- /*
- * Define the maximum length of the name and value of each enviroment
- * variable and the maximum size of the environment.
- */
-
- #define PROC_MAX_ENVIRON_NAME_LENGTH 4096
- #define PROC_MAX_ENVIRON_VALUE_LENGTH 4096
- #define PROC_MAX_ENVIRON_SIZE 100
-
- /*
- * Define the maximum size of the first line of an interpreter file.
- */
-
- #define PROC_MAX_INTERPRET_SIZE 80
-
- /*
- * Definitions for the Proc_G/SetIntervalTimer system calls.
- *
- * Currently, only 1 type of timer is defined:
- * PROC_TIMER_REAL - time between intervals is real (a.k.a wall-clock) time.
- *
- * The values and the structure have the same values and layout as their
- * 4.3BSD equivalents.
- */
-
- #define PROC_TIMER_REAL 0
- /*
- * not used yet.
- #define PROC_TIMER_VIRTUAL 1
- #define PROC_TIMER_PROFILE 2
- */
-
- #define PROC_MAX_TIMER PROC_TIMER_REAL
-
- typedef struct {
- Time interval; /* Amount of time between timer expirations. */
- Time curValue; /* Amount of time till the next expiration. */
- } Proc_TimerInterval;
-
- /*
- * Size of the buffer containing arguments, to be passed back to users.
- */
-
- #define PROC_PCB_ARG_LENGTH 256
-
- /*
- * The following structure is used to transfer fixed-length argument strings
- * from the kernel back to user space. A typedef simplifies later
- * declarations (and may be the only way to do it?), since
- * char *argPtr[PROC_PCB_ARG_LENGTH]
- * would be an array of pointers to strings rather than an array of strings.
- */
-
- typedef struct {
- char argString[PROC_PCB_ARG_LENGTH];
- } Proc_PCBArgString;
-
-
- /*
- * Define the state of this machine w.r.t accepting migrated processes.
- * A machine must always be willing to accept its own processes if they
- * are migrated home. Other than that, a host may allow migrations onto
- * it under various sets of criteria, and may allow migrations away from
- * it under similar sets of criteria.
- *
- * PROC_MIG_IMPORT_NEVER - never allow migrations to this host.
- * PROC_MIG_IMPORT_ROOT - allow migrations to this host only
- * by root.
- * PROC_MIG_IMPORT_ALL - allow migrations by anyone.
- * PROC_MIG_IMPORT_ANYINPUT - don't check keyboard input when
- * determining availability.
- * PROC_MIG_IMPORT_ANYLOAD - don't check load average when
- * determining availability.
- * PROC_MIG_IMPORT_ALWAYS - don't check either.
- * PROC_MIG_EXPORT_NEVER - never export migrations from this
- * host.
- * PROC_MIG_EXPORT_ROOT - allow only root to export.
- * PROC_MIG_EXPORT_ALL - allow anyone to export.
- *
- * For example, a reasonable default for a file server might be to import
- * and export only for root; for a user's machine, it might be to allow
- * anyone to migrate; and for a compute server, it might never export
- * and import always regardless of load average or keyboard input. (The
- * load average would not have to be exceptionally low to determine
- * availability; the host still would only be selected if the load average
- * were low enough to gain something by migrating to it.)
- */
-
- #define PROC_MIG_IMPORT_NEVER 0
- #define PROC_MIG_IMPORT_ROOT 0x00000001
- #define PROC_MIG_IMPORT_ALL 0x00000003
- #define PROC_MIG_IMPORT_ANYINPUT 0x00000010
- #define PROC_MIG_IMPORT_ANYLOAD 0x00000020
- #define PROC_MIG_IMPORT_ALWAYS \
- (PROC_MIG_IMPORT_ANYINPUT | PROC_MIG_IMPORT_ANYLOAD)
- #define PROC_MIG_EXPORT_NEVER 0
- #define PROC_MIG_EXPORT_ROOT 0x00010000
- #define PROC_MIG_EXPORT_ALL 0x00030000
-
- #define PROC_MIG_ALLOW_DEFAULT (PROC_MIG_IMPORT_ALL | PROC_MIG_EXPORT_ALL)
-
- /*
- * Library call declarations.
- */
-
- extern ReturnStatus Proc_SetExitHandler();
- extern void Proc_Exit();
-
- /*
- * System call declarations.
- */
-
- extern ReturnStatus Proc_Fork();
- extern void Proc_RawExit();
- extern ReturnStatus Proc_Detach();
- extern ReturnStatus Proc_Wait();
- extern ReturnStatus Proc_RawWait();
- extern ReturnStatus Proc_Exec();
- extern ReturnStatus Proc_ExecEnv();
-
- extern ReturnStatus Proc_GetIDs();
- extern ReturnStatus Proc_SetIDs();
- extern ReturnStatus Proc_GetGroupIDs();
- extern ReturnStatus Proc_SetGroupIDs();
- extern ReturnStatus Proc_GetFamilyID();
- extern ReturnStatus Proc_SetFamilyID();
-
- extern ReturnStatus Proc_GetPCBInfo();
- extern ReturnStatus Proc_GetResUsage();
- extern ReturnStatus Proc_GetPriority();
- extern ReturnStatus Proc_SetPriority();
-
- extern ReturnStatus Proc_Debug();
- extern ReturnStatus Proc_Profile();
-
- extern ReturnStatus Proc_SetIntervalTimer();
- extern ReturnStatus Proc_GetIntervalTimer();
-
- extern ReturnStatus Proc_SetEnviron();
- extern ReturnStatus Proc_UnsetEnviron();
- extern ReturnStatus Proc_GetEnvironVar();
- extern ReturnStatus Proc_GetEnvironRange();
- extern ReturnStatus Proc_InstallEnviron();
- extern ReturnStatus Proc_CopyEnviron();
-
- extern ReturnStatus Proc_Migrate();
-
- #endif /* _ASM */
-
- #endif /* _PROCUSER */
- @
-
-
- 1.21
- log
- @Add PROC_RESUME_PROCESS and PROC_PENDING_SUSPEND flags.
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.20 91/08/24 13:05:37 mottsmth Exp Locker: kupfer $ SPRITE (Berkeley)
- d172 4
- a175 2
- * process's state becomes PROC_MIGRATED and
- * its PROC_MIGRATION_DONE flag is set.
- d177 2
- a178 1
- * migration trap.
- @
-
-
- 1.20
- log
- @Need two flags for vfork
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.19 91/08/20 13:03:20 mottsmth Exp Locker: mottsmth $ SPRITE (Berkeley)
- d190 4
- d195 24
- a218 22
-
- #define PROC_KERNEL 0x00001
- #define PROC_USER 0x00002
- #define PROC_DEBUGGED 0x00004
- #define PROC_DEBUG_ON_EXEC 0x00008
- #define PROC_SINGLE_STEP_FLAG 0x00010
- #define PROC_DEBUG_WAIT 0x00020
- #define PROC_MIG_PENDING 0x00040
- #define PROC_DONT_MIGRATE 0x00080
- #define PROC_FOREIGN 0x00100
- #define PROC_DYING 0x00200
- #define PROC_LOCKED 0x00400
- #define PROC_NO_VM 0x00800
- #define PROC_MIGRATING 0x01000
- #define PROC_MIGRATION_DONE 0x02000
- #define PROC_ON_DEBUG_LIST 0x04000
- #define PROC_REMOTE_EXEC_PENDING 0x08000
- #define PROC_MIG_ERROR 0x10000
- #define PROC_EVICTING 0x20000
- #define PROC_KILLING 0x40000
- #define PROC_VFORKCHILD 0x80000
- #define PROC_VFORKPARENT 0x100000
- @
-
-
- 1.19
- log
- @Add vfork flag
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.18 91/05/17 17:30:23 kupfer Exp Locker: mottsmth $ SPRITE (Berkeley)
- d186 1
- a186 1
- * PROC_VFORK - This process created with vfork
- d188 2
- d211 2
- a212 1
- #define PROC_VFORK 0x80000
- @
-
-
- 1.18
- log
- @Make sure macro definitions put parentheses around their arguments.
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.17 91/03/17 23:28:09 kupfer Exp Locker: kupfer $ SPRITE (Berkeley)
- d186 2
- d209 1
- @
-
-
- 1.18.1.1
- log
- @Branch for Sprite server changes.
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.18 91/05/17 17:30:23 kupfer Exp $ SPRITE (Berkeley)
- @
-
-
- 1.17
- log
- @Include <sprite.h> (for ReturnStatus).
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.16 91/03/01 22:11:03 kupfer Exp Locker: kupfer $ SPRITE (Berkeley)
- d87 1
- a87 1
- #define Proc_PIDToIndex(pid) (pid & PROC_INDEX_MASK)
- d102 1
- a102 1
- #define Proc_In_A_Family(familyID) (familyID != PROC_NO_FAMILY)
- @
-
-
- 1.16
- log
- @VM types split out into vmTypes.h
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.15 90/11/14 13:23:55 shirriff Exp Locker: kupfer $ SPRITE (Berkeley)
- d208 5
- d214 1
- @
-
-
- 1.15
- log
- @Increased max environment variable length for compat. with sunOS.
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.14 90/10/19 15:50:38 jhh Exp Locker: shirriff $ SPRITE (Berkeley)
- d213 1
- a213 1
- #include <user/vm.h>
- d217 1
- a217 1
- #include <vm.h>
- @
-
-
- 1.14
- log
- @needed to include a few more files.
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.13 90/06/21 13:56:30 shirriff Exp Locker: mendel $ SPRITE (Berkeley)
- d448 2
- a449 2
- #define PROC_MAX_ENVIRON_NAME_LENGTH 512
- #define PROC_MAX_ENVIRON_VALUE_LENGTH 512
- @
-
-
- 1.13
- log
- @Added PROC_KILLING to make dbx work.
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.12 89/10/12 12:14:40 jhh Exp Locker: shirriff $ SPRITE (Berkeley)
- a20 12
- #ifndef _ASM
-
- #include <spriteTime.h>
- #include <sig.h>
- #include <kernel/mach.h>
- #ifdef KERNEL
- #include <user/vm.h>
- #else
- #include <vm.h>
- #endif
-
- #endif /* _ASM */
- d70 1
- d208 13
- @
-
-
- 1.12
- log
- @spelled dying correctly
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.11 89/10/10 16:04:02 douglis Exp Locker: jhh $ SPRITE (Berkeley)
- d194 3
- d217 1
- @
-
-
- 1.11
- log
- @added PROC_EVICTING flag for statistics gathering purposes.
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.10 89/09/08 16:27:22 mgbaker Exp Locker: douglis $ SPRITE (Berkeley)
- d176 1
- a176 1
- * PROC_DIEING - The process is comitting hari-kari.
- d205 1
- a205 1
- #define PROC_DIEING 0x00200
- @
-
-
- 1.10
- log
- @Adding more _ASM stuff.
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.9 89/08/08 11:09:30 douglis Exp Locker: mgbaker $ SPRITE (Berkeley)
- d187 1
- a187 1
- * PROC_ON_DEBUG_LIST - the process is on the debug list.
- d190 1
- a190 1
- * PROC_MIG_ERROR - indicates asynchronous error before
- d192 2
- d213 1
- @
-
-
- 1.9
- log
- @added PROC_MIG_ERROR flag
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.8 89/07/05 21:09:35 rab Exp Locker: douglis $ SPRITE (Berkeley)
- d21 2
- d32 2
- d74 1
- d154 3
- d213 2
- d580 2
- @
-
-
- 1.8
- log
- @*** empty log message ***
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.7 89/06/23 11:29:53 rab Exp Locker: rab $ SPRITE (Berkeley)
- d182 2
- d202 1
- @
-
-
- 1.7
- log
- @*** empty log message ***
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.6 89/06/15 22:34:13 douglis Exp Locker: rab $ SPRITE (Berkeley)
- d243 1
- a243 1
- PROC_DETACH_DEBUGGER,
- @
-
-
- 1.6
- log
- @added PROC_REMOTE_EXEC_PENDING flag.
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.5 89/04/07 10:31:25 douglis Exp Locker: douglis $ SPRITE (Berkeley)
- d568 1
- a568 1
- #endif _PROCUSER
- @
-
-
- 1.5
- log
- @moved PROC_MIG_{IM,EX}PORT_* definitions here.
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.4 89/03/27 22:26:01 jhh Exp Locker: douglis $ SPRITE (Berkeley)
- d180 2
- d199 1
- d414 5
- a418 6
- int peerHostID; /* If on home node, ID of remote node.
- * If on remote node, ID of home node.
- * If not migrated, undefined. */
- Proc_PID peerProcessID; /* If on remote note, process ID on
- * home node, and vice-versa. */
-
- @
-
-
- 1.4
- log
- @moved all the stuff needed for the new interface to Proc_GetPCBInfo out
- of kernel include file
- @
- text
- @d15 1
- a15 1
- * $Header: /sprite/src/lib/include/RCS/proc.h,v 1.3 88/08/25 12:24:17 nelson Exp Locker: jhh $ SPRITE (Berkeley)
- d476 43
- @
-
-
- 1.3
- log
- @Changed to use the Mach_RegState struct.
- @
- text
- @d15 1
- a15 1
- * $Header: proc.h,v 1.2 88/06/21 16:38:32 ouster Exp $ SPRITE (Berkeley)
- d24 5
- d86 10
- d133 65
- d199 1
- d287 133
- d457 18
- @
-
-
- 1.2
- log
- @Use "spriteTime.h" instead of "time.h" to avoid conflict with UNIX.
- @
- text
- @d15 1
- a15 1
- * $Header: proc.h,v 1.1 88/06/21 09:36:54 ouster Exp $ SPRITE (Berkeley)
- d23 1
- a24 1
-
- d184 1
- a184 6
- int genRegs[PROC_NUM_GENERAL_REGS]; /* All of the general purpose
- * registers. */
- int progCounter; /* The program counter when the
- system call occured. */
- int statusReg; /* The status register when the
- system call occured. */
- @
-
-
- 1.1
- log
- @Initial revision
- @
- text
- @d15 1
- a15 1
- * $Header: proc.h,v 2.5 88/05/26 11:05:36 ouster Exp $ SPRITE (Berkeley)
- d21 2
- a22 2
- #include "time.h"
- #include "sig.h"
- @
-